﻿Imports _7Wonders.Cartes

Public MustInherit Class Joueur
    Implements Sujet

    Public Event JoueurGauche()
    Public Event JoueurDroite()

    Private _dctObservateurs As New Dictionary(Of Observateur, Sujet.EmplacementVoisin)
    Private _nomJoueur As String

    Protected ReadOnly Property Observateurs As Dictionary(Of Observateur, Sujet.EmplacementVoisin)
        Get
            Return _dctObservateurs
        End Get
    End Property

    Public ReadOnly Property NomJoueur As String
        Get
            Return _nomJoueur
        End Get
    End Property

    Public Property Main As New List(Of Carte)

    Public Property Plateau As New Plateau

#Region "Constructeurs"
    Public Sub New(nomJoueur As String)
        _nomJoueur = nomJoueur
    End Sub
#End Region

#Region "Implémentation du Sujet"
    Public Sub AjouterObservateur(o As Observateur, emplacement As Sujet.EmplacementVoisin) Implements Sujet.AjouterObservateur
        _dctObservateurs.Add(o, emplacement)
    End Sub

    Public Sub EnleverObservateur(o As Observateur, emplacement As Sujet.EmplacementVoisin) Implements Sujet.EnleverObservateur
        _dctObservateurs.Remove(o)
    End Sub

    Public MustOverride Sub NotifierObservateur() Implements Sujet.NotifierObservateur
#End Region

#Region "Méthodes"
    Public MustOverride Sub Jouer()

    Public MustOverride Sub AfficherMain()

    Public MustOverride Sub AfficherJeu()

    Public MustOverride Sub AfficherJeuxVoisins()

    Public MustOverride Sub AfficherRessourcesProduites()

    Public MustOverride Sub AfficherRessourcesVoisinGauche()

    Public MustOverride Sub AfficherRessourcesVoisinDroite()
#End Region

End Class
